﻿<!DOCTYPE html>
<html>
<head>
  <title>Minimal GoJS Sample using RequireJS</title>
  <!-- Copyright 1998-2020 by Northwoods Software Corporation. -->
  <meta name="description" content="How to 'require' the GoJS library as an anonymous Asynchronous Module Definition (AMD) module." />
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <script src="assets/require.js"></script>
  <script id="code">
    require.config({
      // declare that the GoJS library is actually in a different directory
      paths: { "go": "../release/go" }
    });

    function init() {
      require(["go"], function(go) {
        var $ = go.GraphObject.make;

        var myDiagram =
          $(go.Diagram, "myDiagramDiv");

        // define a simple Node template
        myDiagram.nodeTemplate =
          $(go.Node, "Auto",  // the Shape will go around the TextBlock
            $(go.Shape, "RoundedRectangle", { strokeWidth: 0 },
              // Shape.fill is bound to Node.data.color
              new go.Binding("fill", "color")),
            $(go.TextBlock,
              { margin: 8 },  // some room around the text
              // TextBlock.text is bound to Node.data.key
              new go.Binding("text", "key"))
          );

        // but use the default Link template, by not setting Diagram.linkTemplate

        // create the model data that will be represented by Nodes and Links
        myDiagram.model = new go.GraphLinksModel(
          [
            { key: "Alpha", color: "lightblue" },
            { key: "Beta", color: "orange" },
            { key: "Gamma", color: "lightgreen" },
            { key: "Delta", color: "pink" }
          ],
          [
            { from: "Alpha", to: "Beta" },
            { from: "Alpha", to: "Gamma" },
            { from: "Beta", to: "Beta" },
            { from: "Gamma", to: "Delta" },
            { from: "Delta", to: "Alpha" }
          ]);

        require(["../assets/js/goSamples"], function() {  // only for the GoJS Samples framework -- you don't need to call this
          if (window.goSamples) goSamples();
        });
      });
    }
  </script>
</head>
<body onload="init()">
  <div id="sample">
  <p>A truly minimal <b>GoJS</b> Sample using RequireJS</p>
  <div id="myDiagramDiv" style="border: solid 1px black; width:400px; height:400px"></div>
  <div id="description">
  <p>
  <b>GoJS</b> registers itself as an anonymous Asynchronous Module Definition (AMD) module,
  so that you have the option of loading "go.js" asynchronously on demand by just calling <code>require</code>.
  </p>
  </div>
</body>
</html>